When you're a full-time traveller you usually don't posses much and therefor don't really have to take care of many things. Apart from the usual suspects like your passport there's probably one thing that's really valuable to you: Your computer.
For me, that computer is a 2018 15" MacBook Pro 2,9GHz 6-Core Intel Core i9 with 32GB DDR4 RAM, an Intel UHD 630 and an additional AMD Radeon Pro 560X 4GB on-board graphics card. It's one of those MacBooks without a physical escape key, which is an important detail to me. Frankly speaking, it's what I dislike most about it, but let's not go down that rabbit hole.
I'm running the latest macOS release and I usually keep my OS and all my applications up-to-date. Its internal 1TB SSD is fully-encrypted and I use my own storage over cloud-services like Google Drive, Dropbox or Microsoft Drive, because I'm working with confidential data most of the time. I also spend a proportionally large amount of time on the command line, which is why I have a few things here and there that make my life easier. Overall, I'm very much a minimalist in terms of software.
For starters, I use
brew for managing most of the software that's running on my MacBook. In case you don't know
brew yet, it's a package manager similar to those that you use on Linux distributions (
apk, ...) and it allows you to install and manage CLI tools and also full-blown macOS applications in a more reproducible fashion. I personally even use it for installing and updating programs like Sublime Text and Docker Desktop. As my list of tools and programs varies a lot by time and project, I won't write down a complete list of everything I have ever had installed through brew, but here are a few CLI essentials that I use to keep around all the time:
arduino-mk git-crypt readline asciinema git-flow rebar3 autoconf git-lfs riscv-gnu-toolchain automake gnu-sed riscv-isa-sim avr-binutils gnupg riscv-pk avr-gcc go riscv-tools avrdude gotop rsnapshot awscli imagemagick rtv bettercap irssi ruby binutils jq rust cabal-install make smartmontools caddy midnight-commander socat cmake minicom sqlite dark-mode neomutt stlink doxygen neovim telnet dtc ninja terraform elixir node tmux erlang notmuch tor findutils open-ocd transmission-cli freetype picocom unrar gawk pinentry w3m gettext pkg-config wget ghc protobuf yarn git python zsh
Apart from these, I try to keep the GUI applications down to a minimum and only install the ones I really need. I'm very mindful in terms of GUI applications and I stay miles away from Adobe software. Only a few months ago I successfully got rid of the very last Adobe program I was using, which was Lightroom Classic. For the little creative work that I'm doing, I'm using the following programs:
- Capture One, Affinity Photo and Pixelmator Pro for photo editing
- Affinity Designer and Sketch for vector editing
- Affinity Publisher for DTP
- Apple Photos for storing and managing all mobile photography
I really don't do much creative work, though. It's more of a hobby. The reason I keep things like Pixelmator around is for the times when people send me PSDs or when I really do need to draw a few things on my own.
Engineering & Development
However, let's continue to the cooler parts: Engineering & development. Here's where things get a bit more diverse and crowded. Probably the most important UI application in these areas to me is Sublime Text. I don't use Xcode, VS Code or any other IDE when I'm not forced to do so. On projects in which I do a lot of Qt I use their toolchain in order to stay sane. However, if I was looking forward to a couple of sleepless nights full of headaches, I could probably switch large parts of the development flow over to a Sublime & CLI-approach as well. That's usually what I do with Arduino/STM projects and even more with RIOT-based projects, thanks to their pretty solid CLI toolchain.
Even though I'm a heavy Sublime user, I tend to keep my local Package Control repository very clean in order to not have too much baggage around. The more nifty packages one uses with Sublime, the more sluggish and crash-prone it will become. Especially the LSP packages for Sublime seem to make it crash a lot more than it usually does – which for me is actually never. As for the settings, I probably use similar options like most people who use Sublime to such an extend.
Next up is Docker. I use containers for many things, hence the Docker Desktop application is quite an important part of my everyday life. I do have Kitematic installed as well, but I hardly ever use it. Most of the time I'm working with the
docker CLI which, compared to other CLIs like for example
gsutil I find very intuitive and easy to use. My local Docker engine is set up to run as a swarm, hence when I need to fire up containers locally, I use
docker stack deploy for that.
I usually hack all these commands into a
tmux session that's constantly running inside a single instance/window of
Alacritty. I used to use
iTerm2 for a very long time, but roughly a year ago I switched to
Alacritty while I was working with an eGPU attached to my MacBook and experienced super annoying issues with iTerm2's rendering performance.
The shell that I used even before macOS made it the default was and still is
Oh My Zsh installed and a carefully crafted
.zshrc that allows me to backup and recover it from a GitHub Gist, so that I can easily set it up on other systems (e.g. the dozen SBCs that I usually keep around). For CLI-completeness I also have
neomutt set up.
Of course, I enjoy trying out new tools and programs, especially on the CLI and I have a handful of gimmicks I like to use, like
rainbowstream. A long time ago I used to maintain a handful of CLI tools on my own, like
snoo, a CLI client for Reddit. Unfortunately lack of time made me gave up these efforts.
Besides of the crude command line interface I also heavily use LaunchBar, because it allows me to keep my hands on the keyboard while performing UI-related actions and tasks. LaunchBar brings a large set of functions and allows for easy extensibility. Other programs and little helpers that I use include:
- 1Password, for storing passwords, credit cards and all that
- Dash, for having documentation available offline
- Deliveries, for tracking packages
- Flotato, for having Gmail and Mastodon as an app that I can launch from my Dock and LaunchBar
- GIPHY Capture, for capturing GIFs right on screen
- GPG Suite, for all-things-GPG
- iA Writer, for writing these journal entries
- iStat Menus, for monitoring the MacBook's crappy thermals
- Keybase, for the same reason everyone uses Keybase which is "Well, I don't really know why"
- Ledger Live, for those coins
- Messages, for communicating with the rest of the world – no WhatsApp or Telegram here
- Music, because I decided to have a look at Spotify's competition
- Numi, for notes in which I need to do some math
- OpenEmu, for the little time I don't spend outside and/or working on things
- Paw, for testing and debugging those APIs
- Podcasts, for listening to podcasts on my MacBook and my iPhone
- ProtonVPN, for more anonymity while on public WiFi
- Reeder, for following the world's news
- Reminders, for my personal tasks and because spending $80 in total on a GTD app that's barely being updated is definitely not worth it
- Resilio Sync, for use with my very own encrypted storage
- Riot, for communication within (mainly open-source) projects
- Signal, for communicating with everyone else that's as paranoid as I am
- SketchUp, for designing 3D prints. Side note: I have this love-hate-relationship where I love SketchUp for its simplicity, but I hate it for its limitations and I definitely hate it for its exaggerated monthly fee. Hence learning FreeCAD and/or Blender is definitely on my Reminders list.
- SmartScope, for hours of SPI-debugging fun
- Steam, for Cities: Skylines
- TimeMachineEditor, for taming TimeMachine
- Tower, for not having to remember those effin'
gitcommands. Another love-hate-relationship here: I love the guys from fournova and the work they do. However, with their latest move to a subscription-based price model they made Tower a lot less attractive to me and apparently many others I talked to.
- Twitter, for reading those tweets
- Tyme2, for tracking working hours and exporting them into my billing flow
Last but not least, let's talk about browsers. For my day-to-day browsing I use Safari. The main reasons for that is my distrust against Google and Google products – so Chrome won't ever be my daily driver – and the fact that Safari seems a lot more optimised on macOS than Firefox, Vivaldi, Brave and all the others. I would love to use Firefox more and eventually switch to it, unfortunately I depend a lot on battery power and all other browser seem to be draining it more quickly than Safari does. Also Apple caught-up pretty well in the privacy game with the latest version of Safari. As for the extensions, I'm using DuckDuckGo's Privacy Essentials, Ghostery Lite, Ka-Block! and of course the 1Password Safari extension. Regardless of which browser I use as my daily driver, I do keep an up-to-date version of Firefox and Chrome around, so that I can test web-related things in different browsers. Also, when I used Google services (like my business mail) I use them either through Flotato (see above) or Chrome. For the decentralised web I use Beaker, for the dark web I use Firefox through Tor.
I guess that's it. That's pretty much all the software and tools I use on my computer. These are the tools that allow me to do what I do best: Work with clients world-wide to build beautiful products that people love to use and meanwhile contribute to the open-source movement as much as I can.
One last thing ...
I know what you're thinking.
"But why does it look like that?"
The reason is pretty simple: The sticker art makes it impossible to see that it's an actual MacBook, at least without taking a closer look. Hence it becomes less of a prey for snatchers. In fact, many people think it's an actual book or very thick weirdo comic magazine. 😅